/**
 * 获取当前时间戳（秒）
 * @returns 当前时间戳
 */
export function getCurrentTimestamp(): number {
  return Math.floor(Date.now() / 1000);
}

/**
 * 获取当前时间戳（毫秒）
 * @returns 当前时间戳
 */
export function getCurrentTimestampMs(): number {
  return Date.now();
}

/**
 * 时间戳转换为日期字符串
 * @param timestamp 时间戳（秒）
 * @param format 格式，默认为 'YYYY-MM-DD HH:mm:ss'
 * @returns 格式化的日期字符串
 */
export function timestampToDate(timestamp: number, format: string = 'YYYY-MM-DD HH:mm:ss'): string {
  const date = new Date(timestamp * 1000);
  
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const day = String(date.getDate()).padStart(2, '0');
  const hours = String(date.getHours()).padStart(2, '0');
  const minutes = String(date.getMinutes()).padStart(2, '0');
  const seconds = String(date.getSeconds()).padStart(2, '0');
  
  return format
    .replace('YYYY', String(year))
    .replace('MM', month)
    .replace('DD', day)
    .replace('HH', hours)
    .replace('mm', minutes)
    .replace('ss', seconds);
}

/**
 * 日期字符串转换为时间戳
 * @param dateString 日期字符串
 * @returns 时间戳（秒）
 */
export function dateToTimestamp(dateString: string): number {
  return Math.floor(new Date(dateString).getTime() / 1000);
}

/**
 * 获取相对时间描述
 * @param timestamp 时间戳（秒）
 * @returns 相对时间描述
 */
export function getRelativeTime(timestamp: number): string {
  const now = getCurrentTimestamp();
  const diff = now - timestamp;
  
  if (diff < 60) {
    return '刚刚';
  } else if (diff < 3600) {
    return `${Math.floor(diff / 60)}分钟前`;
  } else if (diff < 86400) {
    return `${Math.floor(diff / 3600)}小时前`;
  } else if (diff < 2592000) {
    return `${Math.floor(diff / 86400)}天前`;
  } else if (diff < 31536000) {
    return `${Math.floor(diff / 2592000)}个月前`;
  } else {
    return `${Math.floor(diff / 31536000)}年前`;
  }
} 